Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

398
Visualizações
¿Por qué mi docx generado en javascript de un blob está lleno de [Objeto Objeto]?

Estoy enviando datos a mi backend de Django a través de una solicitud POST, el servidor luego crea un docx usando estos datos y me lo envía de regreso donde estoy tratando de descargarlo usando el siguiente código:

 axios.post(route, data).then((res) => { const filename = "report.docx" var blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); var link = document.createElement('a'); var URL = window.URL || window.webkitURL; var downloadUrl = URL.createObjectURL(blob); link.href = downloadUrl; link.style = "display: none"; link.download = filename; document.body.appendChild(link) link.click() link.remove() });

La descarga del archivo funciona, pero cuando lo abro, solo contiene [Objeto Objeto], ¿qué estoy haciendo mal aquí? Revisé el backend y el documento se creó correctamente, ya que tiene el contenido correcto cuando lo guardo cuando se genera en el servidor, por lo que lo estoy enviando mal o creando mal el archivo en el frontend.

Así es como lo envío desde el backend:

 #Generating the doc properly before this... response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document') report_filename = 'graph-report-'+now.strftime('%Y-%m-%d_%H-%M-%S')+'.docx' response['Content-Disposition'] = 'attachment; filename=%s'%(report_filename) document.save(response) return response

Gracias por ayudarme.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Con Axios, el res en axios.post(route, data).then((res) => es un objeto de respuesta.

Los datos devueltos se encuentran en res.data .

  1. Haga console.log(res.data) para ver que realmente son los datos binarios que espera.
  2. new Blob([res.data], ... para usar esos datos para obtener el blob. (Si ya es un blob cortesía de Axios, no es necesario que se moleste).

(Aparte, realmente no necesita usar fetch() y createObjectURL para esto, ya que está formando una respuesta binaria similar a una descarga; sería suficiente que el navegador PUBLIQUE los datos deseados, por ejemplo, como un formulario al punto final; descargaría la respuesta de la misma manera).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda